import type { BusinessModelInfo, BusinessModelOptionInfo, SelectOption } from "@/types";
import axios from "axios";
import { keysOf } from "element-plus/es/utils/objects.mjs";
import { reactive, ref } from "vue";

export default function() {
    // 业务模型集合
    let businessModelOptionList = ref<BusinessModelOptionInfo[]>([
        {
            modelName: 'key1名称',
            modelKey: 'modelKey1',
        },
        {
            modelName: 'key2名称',
            modelKey: 'modelKey2',
        },
        {
            modelName: 'key3名称',
            modelKey: 'asdf',
        }
    ]);
    // 获取业务模型接口
    function getAllModelOption() {
        return [
            {
                modelName: 'key1名称',
                modelKey: 'modelKey1',
            },
            {
                modelName: 'key2名称',
                modelKey: 'modelKey2',
            },
            {
                modelName: 'key3名称',
                modelKey: 'asdf',
            },
            {
                modelName: 'key4名称',
                modelKey: 'asderyttrsetf',
            }
        ]
    }

    function createFilter(queryString: string) {
        return (model: BusinessModelOptionInfo) => {
            return (
            model.modelKey.toLowerCase().indexOf(queryString.toLowerCase()) === 0
            )
        }
    }
    // // 获取基础类型集合
    // function getBasicType():SelectOption[] {
    //     return [
    //         {
    //             key: 'string',
    //             value: '字符串'
    //         },
    //         {
    //             key: 'number',
    //             value: '数字'
    //         },
    //         {
    //             key: 'boolean',
    //             value: '布尔值'
    //         }
    //     ]
    // }
    // // 获取枚举常量option集合
    // async function getEnumConstantOptionList():Promise<SelectOption[]> {
    //     try {
    //         let result = await axios.get("/enumConstant/get/all/enumConstant/optons");
    //         console.log(JSON.stringify(result))
    //         if (result.data.code == 200) {
    //             return result.data.content;
    //         } else {
    //             return [];
    //         }
    //     } catch (error) {
    //         console.log(error)
    //         return [];
    //     }
    // }
    // // 获取自定义类型option集合
    // async function getBusinessModelOptionList():Promise<SelectOption[]> {
    //     try {
    //         // let result = await axios.get("/businessModel/get/all/businessModel/optons");
    //         // if (result.data.code == 200) {
    //         //     return result.data.content;
    //         // } else {
    //         //     return [];
    //         // }
    //         return [
    //             {
    //                 key: 'model1',
    //                 value: '自定义1'
    //             },
    //             {
    //                 key: 'model2',
    //                 value: '自定义2'
    //             }
    //         ]
    //     } catch (error) {
    //         console.log(error)
    //         return [];
    //     }
    // }
    return { 
        businessModelOptionList, 
        getAllModelOption,
        createFilter
     }
}